<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>
<script>
  //     即一个容器，里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果
  // 从语法上讲，Promise是一个对象，从它可以获取异步操作的消息
  // 通过promise的构造函数来创建promise对象，并在内部封装一个异步执行结果
  // 如果要等待异步执行完成之后做一些事情，可通过then方法实现
  // 如果要处理promise异步执行失败的事件，可以跟上catch

  const p = new Promise((resolve, reject) => {
    //异步的操作，通常是ajax操作
    //使用setTimeout()模拟异步操作
    setTimeout(() => {
      //异步操作(模拟)
      let num = Math.random();
      if (num < 0.5) {
        //代表成功
        resolve("succeed" + num);
      } else {
        //代表失败
        reject("fail" + num);
      }
    });
  });
  p.then((value) => {
    console.log(value);
  }).catch((reason) => {
    console.log(reason);
  });
</script>
